package com.ltu.model.request.base;

import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 常用的分页筛选请求类
 * Created by vescky on 2020/8/21.
 */
@Data
public class BaseFilterPageReq<T>  {
	
	 @ApiModelProperty(value="对应的实体参数",required=false)
	private T entityParam;
    /**
     * 开始时间
     */
    @ApiModelProperty(value="开始时间，筛选时可选传，筛选修改时间，传递方式为timestamp",required=false)
    private String startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty(value="结束时间，筛选时可选传，筛选修改时间，传递方式为timestamp",required=false)
    private String endTime;

    /**
     * 父id
     */
    @ApiModelProperty(value="通用父类id，筛选时可选传",required=false)
    private String fatherId;

    /**
     * 状态
     */
    @ApiModelProperty(value="状态值，筛选时可选传：0禁用，1启用",required=false)
    private Integer status;
    
    @ApiModelProperty(value="需要模糊匹配的参数",required=false)
    private JSONObject  keyWords;

    @ApiModelProperty(value="不包含的记录ID",required=false)
    private List<String>  noIncludeIds;
    
    @ApiModelProperty(value="不包含的记录ID",required=false)
    private List<String> includeIds;
    
	  @ApiModelProperty(value = "时间查询区间：0无时间范围，1=今天2=7天内3=30天内4=180天内")
  	  @TableField(exist = false)
	  private Integer  queryDateDict=0;
	  
		public Integer getQueryDateDict() {
		return queryDateDict;
	}
	public void setQueryDateDict(Integer queryDateDict) {
		this.queryDateDict = queryDateDict;
	}
    
    /**
     * 状态
     */
    @ApiModelProperty(value="分页参数",required=false)
    @NotNull
    private  PageReqData  pageReq;
}
